<template>
  <section ref='toTrade' id="toTrade">
    <div class="title">
      <ul>
        <li @click="isLogin ? tabIndex='markPrice':''"  :class="tabIndex== 'markPrice' ? 'active':''">市价交易</li>
        <li @click="isLogin ? tabIndex='canCelled':alterChoose(2)"  :class="tabIndex== 'canCelled' ? 'active':''">限价挂单</li>
        <li @click="isLogin ? tabIndex='stopLoss':alterChoose(2)"  :class="tabIndex== 'stopLoss' ? 'active':''">停损挂单</li>
      </ul>
      <a href="javascript:;" id="zyzs" :disabled="!isLogin" @click="swichZyZs">止盈止损</a>
    </div>
    <div v-if='tabIndex=="markPrice"' class="content">
      <div v-if='$store.state.symbolList.length'  class="up" :class="openzyzs ? 'upTopZyzs' : 'upTop'">
        <div>卖出</div>
        <div :class="isLogin && selectType===0 ? 'active' : ''" @click="selectType=0" :disabled="!isLogin">{{lists.inAndOut.out_price}}</div>
        <div>{{lists.difference}}</div>
        <div :class="isLogin && selectType===1 ? 'active' : ''" @click="selectType=1" :disabled="!isLogin">{{lists.inAndOut.in_price}}</div>
        <div>买入</div>
      </div>
      <div class="middle" :class="openzyzs ? 'middleTopZyzs' : 'middleTop'">
        <div>购买手数</div>
        <div>
          <span id="del" :disabled="!isLogin" @click="!isLogin ? alterChoose(2):upShopNumber(-hand_difference,`shopNumber`)">-</span>
          <input type="text" id="num" @keyup="keyUpPrice(selectTab[tabIndex]['shopNumber'],'shopNumber')"  v-model="selectTab[tabIndex]['shopNumber']" :disabled="!isLogin">
          <span id="add" :disabled="!isLogin"  @click="!isLogin ? alterChoose(2):upShopNumber(hand_difference,`shopNumber`)">+</span>
          <div    v-if='isOpen==1 ? true:false'  :class="{'red':shopSizeClass}" class="area is_red">
            手数范围：{{Number(minhand).toFixed(2)}} ~ {{Number(maxhand).toFixed(2)}}
          </div>
          <div   v-if='isOpen==2 ? true:false'   class="area is_red">
            手数范围：- - 
          </div>
        </div>
        <ul>
          <li v-for='item in buynumArr' @click="!isLogin ? alterChoose(2):selectTab[tabIndex][`shopNumber`]=item.num"  :disabled="!isLogin">{{item.num}} 手</li>
        </ul>
      </div>
      <div class="down" :class="openzyzs ?  'downTopZyzs' : 'downTop'">
        <div class="login" v-if="!isLogin">
          <a @click="alterChoose(2)" href="javascript:;">登录</a>
          <span>或者</span>
          <a @click="alterChoose(1)" href="javascript:;">注册</a>
        </div>
        <div class="zyzsInfo" v-if="openzyzs">
          <div>止盈设置</div>
          <div>
            <span  @click="upShopzhiyin(-price_difference,'stopProfit','zhiyin')" id="zydel" >-</span>
            <input v-model="selectTab[tabIndex]['stopProfit']"  @keyup="keyUpPrice(selectTab[tabIndex]['stopProfit'],'stopProfit')" type="number" id="zyPrice" placeholder="未设置">
            <span  @click="upShopzhiyin(price_difference,'stopProfit','zhiyin')" id="zyadd">+</span> 
            <div  v-if='$store.state.symbolList.length' :class="{'red':priceSizeClass}"   class="area is_red">
              价格范围 {{zhiyinMin}} ~ {{zhiyinMax}}
            </div>
          </div>
          <div>止损设置</div>
          <div>
            <span  @click="upShopzhiyin(-price_difference,'stopLoss','zhishun')"  id="zsdel">-</span>
            <input type="number" id="zsPrice"  v-model="selectTab[tabIndex]['stopLoss']" @keyup="keyUpPrice(selectTab[tabIndex]['stopLoss'],'stopLoss')"    placeholder="未设置">
            <span  @click="upShopzhiyin(price_difference,'stopLoss','zhishun')" id="zsadd">+</span>
            <div   v-if='$store.state.symbolList.length' :class="{'red':stopLossClass}"  class="area is_red">
              价格范围：{{zhishunMin}} ~ {{zhishunMax}}
            </div>
          </div>
        </div>
        <div class="info"   v-if="isLogin">
          <div>
            <span>保证金</span>
            <span>${{(Number(ensure)* Number(selectTab[tabIndex]['shopNumber'])).toFixed(2)}}</span>
            <span>可用资金</span>
            <span v-if='dataShow.usable'>${{dataShow.usable}}</span>
            <span v-else>--</span>
          </div>
          <button :style="openzyzs ?  'margin: 8px auto 0 auto;':'margin: 18px auto 0 auto;'" @click="submitShop($event)" >确认开仓</button>
        </div>
      </div>
    </div>
     <!-- 限价挂单 && 停损挂单 -->
    <div  v-else class="rests_content">
         <div class="up" :class="openzyzs ? 'upTopZyzs' : 'upTop'">
           <div>卖出</div>
           <div :class="isLogin && selectType===0 ? 'active' : ''" @click="selectType=0" :disabled="!isLogin">{{lists.inAndOut.out_price}}</div>
           <div>{{lists.difference}}</div>
           <div :class="isLogin && selectType===1 ? 'active' : ''" @click="selectType=1" :disabled="!isLogin">{{lists.inAndOut.in_price}}</div>
           <div>买入</div>
         </div>
         <div class="rests_gdpirce">
              <div   class="gdpirce_warp">
                 <span class="title">挂单价格</span>
                 <div class="rest_input">
                      <span @click='upShopNumber(-price_difference,"gdPicrk")' >-</span>
                      <input v-model="selectTab[tabIndex]['gdPicrk']"   @keyup="keyUpPrice(selectTab[tabIndex]['gdPicrk'],'gdPicrk')"     type="number">
                      <span @click='upShopNumber(price_difference,"gdPicrk")' class="input_add">+</span>
                 </div>
              </div>
         </div>
         <div  :class="{'red':putUpClass}" class="pirce_scope is_red">
                价格范围：{{priceMin}} ~ {{priceMax}}
         </div>
         <div  class="rests_shopNum">
            <div class="shopNum_warp">
                 <span class="title">
                    购买手数
                 </span>
                 <div class="shpNum_input">
                      <span @click='upShopNumber(-hand_difference,"shopNumber")'>-</span>
                      <input   @keyup="keyUpPrice(selectTab[tabIndex]['shopNumber'],'shopNumber')"   v-model="selectTab[tabIndex]['shopNumber']"  value="1.00" type="number">
                      <span @click='upShopNumber(hand_difference,"shopNumber")' class="input_add">+</span>
                 </div>
                 <div class="shopNum_selecet">
                    <ul >
                     <li v-for='item in buynumArr' @click="selectTab[tabIndex]['shopNumber']=item.num" :disabled="!isLogin">{{item.num}}手</li>
                    </ul>
                 </div>
            </div>
         </div>
        <div  v-if='isOpen==1 ? true:false' :class="{'red':shopSizeClass}"  class="pirce_scope is_red">
              手数范围：{{Number(minhand).toFixed(2)}} ~ {{Number(maxhand).toFixed(2)}}
        </div>
        <div   v-if='isOpen==2 ? true:false'  class="pirce_scope is_red">
              手数范围：  - -
        </div>
         <div v-show="openzyzs" class="rests_zyzs">
              <div  class="gdpirce_warp">
                <div style="display: inline-block">
                 <span class="title">止盈设置</span>
                 <div class="rest_input">
                      <span  @click="upShopzhiyin(-price_difference,'stopProfit','zhiyin')" >-</span>
                      <input  v-model="selectTab[tabIndex]['stopProfit']"  @keyup="keyUpPrice(selectTab[tabIndex]['stopProfit'],'stopProfit')"  placeholder="未设置" type="number">
                      <span  @click="upShopzhiyin(price_difference,'stopProfit','zhiyin')" class="input_add">+</span>
                      
                 </div>
                 
                 </div>
                <div style="display: inline-block;" class="rests_zyzsTow">
                 <span class="title">止损设置</span>
                 <div class="rest_input">
                      <span @click="upShopzhiyin(-price_difference,'stopLoss','zhishun')" >-</span>
                      <input   v-model="selectTab[tabIndex]['stopLoss']" @keyup="keyUpPrice(selectTab[tabIndex]['stopLoss'],'stopLoss')"   class="input"  placeholder="未设置"  type="number">
                      <span @click="upShopzhiyin(price_difference,'stopLoss','zhishun')"  class="input_add">+</span>
                   
                 </div> 
                 
                 </div>
              </div>
         </div>
                <div v-if='openzyzs&&tabIndex!="markPrice"' :class="{'red':priceSizeClass}"     class="is_red pirce_scope">
                    价格范围 {{zhiyinMin}} ~ {{zhiyinMax}}
                </div>
                <div v-if='openzyzs&&tabIndex!="markPrice"'  :class="{'red':stopLossClass}"   class="pirce_scope2 is_red" >
                    价格范围：{{zhishunMin}} ~ {{zhishunMax}}
                </div>

        <div  class="info">
           <span>保证金</span>
           <span>${{(Number(ensure)* Number(selectTab[tabIndex]['shopNumber'])).toFixed(2)}}</span>
           <span>可用资金</span>
             <span v-if='dataShow.usable'>${{dataShow.usable}}</span>
            <span v-else>--</span>
        </div>
         <button  :class="tabIndex!='markPrice' && openzyzs ? 'is_open2':'is_open' " @click="submitShop($event)"   > 确认开仓</button>
    
    </div>
     <base-alert :bol.sync="alertBol" :pathBol="'/assets/usdt'" :isAgent='isAgent' :Successful='Successful' :text='text' :btnText='btnText' :type.sync="alertType"></base-alert>

  </section>
</template>
<script>
import {_getSymbolDetail,_submitOrder,_getGoodsOpen,_getUserMoney} from '../axios/index.js'
import { setTimeout } from 'timers';
export default {
  data() {
    return {
      isLogin:false,// 是否登录
      openzyzs:false,// 是否开启了止盈止损
      selectType:0, // 选择的类型 卖出为0 买入为1
      tabIndex:'markPrice',
      alertBol:false,// 弹窗
      symReqBol:null,
      alertType:1,//弹窗类型
      selectTab:{
        //停损挂单
        stopLoss:{shopNumber:0,stopProfit:'',stopLoss:'',gdPicrk:''},
        //市价交易
        markPrice:{shopNumber:0,stopProfit:'',stopLoss:''},
        //限价挂单
        canCelled:{shopNumber:0,stopProfit:'',stopLoss:'',gdPicrk:''},
      },
      buynumArr:null,  //购买手数列表
      hand_difference:null,   //每次加减的手数
      price_difference: 0, // 每次加减的
      minhand: 0, // 最小手数 
      maxhand: 1, // 最大手数
      minstop: "", // 止盈止损最小值 默认
      maxstop: "", // 止盈止损最大值 默认
      ensure: 0, // 每手保证金
      mindistance: "", // 最小挂单距离
      maxdistance: "", // 最大挂单距离
      newPrice:'',
      typeid:'',
      goodsId:null,
      isOpen:2,
      canUseMoney:null,
      text:'余额不足',
      btnText:'立即充值',
      Successful:null,
      isAgent:false,
    }
  },
  created(){
     let _self = this;
     let $store=this.$store.state;
     if($store.user.user_type==1){
        //获取用户信息
    this.$store.dispatch("getUser");
     }
     //登录状态
     _self.isLogin= $store.token ? true:false;
     //获取用户可用余额
     this.getUserMoney()
 
  },
  mounted(){
   
  },
  methods:{
    //用户可用资金
     async getUserMoney(){
      if(!this.$store.state.token && !this.$store.state.user) return
      let user = this.$store.state.user.user_type;
      const res = await _getUserMoney({user_type:user});
      if (res.data.code === 200) {
        this.canUseMoney =  Number(res.data.data.available_money).toFixed(2);
      }
    },
    //更改弹窗
    alterChoose(type){
         this.alertType=type;
         this.alertBol=true;
     },
     //是否开盘
     async getGoodsOpen(id){ 

          
                 var res = await _getGoodsOpen(id);
              

                 res.data.code==200 ? this.isOpen=res.data.data:''
          
    }, 
     //确认开仓
     submitShop(el){
       let num=this.selectTab[this.tabIndex]
       if(this.isOpen==2){
           this.$Message.warning('该商品已休市')
          return false
       }
       if(num['shopNumber'] == 0){
          this.$Message.warning('手数不能为空')
          return false
       }
       if(num['shopNumber']>this.maxhand || num['shopNumber']< this.minhand){
            this.$Message.warning('手数范围错误')
          return false
       }
      if (this.tabIndex == 'canCelled' && Number(num['gdPicrk']) <= 0 || this.tabIndex == 'stopLoss' && Number(num['gdPicrk']) <= 0) {
            this.$Message.warning('挂单价格错误')
            return false;
      }

     this.submitOrder(el);

     },
     async   submitOrder(el) {
      let _self = this;
      let user = this.$store.state.user
      let uid = user ? user.id : ''; // 用户id
      let is_vr_order = user ? (user.user_type == '1' ? 1 : 2) : null; // 1真实订单 2虚拟订单
      let is_agent = user ? (user.is_agent == '1' ? 1 : 2) : null; // 1代理 2非代理
      let goods_id = this.lists.id; // 商品id
      let type_id = _self.typeid; // 分类id
      let price = ''; // 单价
      let buy_type = null; //1 买涨 2 买跌
      let cron_price = ''; // 计划价格（市价交易留空值；限价交易，止损挂单必填）
      let profit_price = ''; // 止盈价
      let loss_price = ''; // 止损价
      if (_self.selectType == 0) {
        price = _self.lists.inAndOut.out_price;
        buy_type = 2;
      } else if (_self.selectType == 1) {
        price = _self.lists.inAndOut.in_price;
        buy_type = 1;
      }
      let num = ''; // 多少手 
      let market_type = null; // 1市价交易 2限价交易 3止损挂单 
        
  
      if (_self.tabIndex == 'markPrice') { 
        num = String(_self.selectTab[this.tabIndex]['shopNumber']);
        market_type = 1;
        cron_price = ''; 
        profit_price = _self.selectTab[this.tabIndex]['stopProfit'] || '0';
        loss_price = _self.selectTab[this.tabIndex]['stopLoss'] || '0';
      } else if (_self.tabIndex == 'canCelled') { 
        num = String(_self.selectTab[this.tabIndex]['shopNumber']);
        market_type = 2;
        cron_price = _self.selectTab[this.tabIndex]['gdPicrk']
        profit_price =_self.selectTab[this.tabIndex]['stopProfit'] || '0';
        loss_price = _self.selectTab[this.tabIndex]['stopLoss'] || '0';
      } else if (_self.tabIndex == 'stopLoss') { 
        num = String(_self.selectTab[this.tabIndex]['shopNumber']);
        market_type = 3;
        cron_price = _self.selectTab[this.tabIndex]['gdPicrk'];
        profit_price =_self.selectTab[this.tabIndex]['stopProfit'] || '0';
        loss_price = _self.selectTab[this.tabIndex]['stopLoss'] || '0';
      }
      let pledge = (Number(this.ensure)* Number(this.selectTab[this.tabIndex]['shopNumber'])).toFixed(2) // 保证金
      let status = 1; // 1持仓 2平仓
      let data = {
        uid:uid,
        goods_id:goods_id,
        type_id:type_id,
        price:price,
        num:num,
        pledge:pledge,
        market_type:market_type,
        buy_type:buy_type,
        cron_price:cron_price,
        profit_price:profit_price,
        loss_price:loss_price,
        status:status,
        is_agent:is_agent,
        is_vr_order:is_vr_order
      };
 

      const res = await _submitOrder(data,{user:'loading',btn:el.target});
      const agent=this.$store.state.user.is_agent;
      if (res.data.code == 200) {
          //市价交易
          if(res.data.msg=='成功' && this.tabIndex=='markPrice'){
             this.Successful=null;
             this.Successful=res.data.data
             this.Successful.shopType=this.selectType
             this.alterChoose(9);
           }
          // 挂单或是停损
           else{
             this.Successful=null;
             let type=this.tabIndex=='canCelled' ? 16:15
             this.Successful=res.data.data
             this.alterChoose(type);
           }
      }else if(res.data.code == 301){ 
           //非代理
           if(agent!=1){
                this.isAgent=false
                this.alterChoose(10);
                return;
              }//代理
             else if(agent==1){
                this.isAgent=true
                this.alterChoose(10);
                return;
             }
           
      }else{
        this.$Message.warning(res.data.msg);
      }
      //市价交易
      if(this.tabIndex=='markPrice'){
          //当前持仓
          this.$store.dispatch("getCcDataList");
      }else{
          this.$store.dispatch("getGdDataList");
      }
      //用户当前可用资金
      this.getUserMoney();
      //获取用户信息
      this.$store.dispatch("getUser");

    },
     second(){
        // for (iterator of this.selectTab[this.tabIndex]) {
         
            this.selectTab['stopLoss'].stopProfit=''
            this.selectTab['markPrice'].stopProfit=''
            this.selectTab['canCelled'].stopProfit=''
            this.selectTab['stopLoss'].stopLoss=''
            this.selectTab['markPrice'].stopLoss=''
            this.selectTab['canCelled'].stopLoss=''
        // }
        
        if(this.tabIndex=='canCelled'){
            this.selectType== 0　? 
            this.selectTab[this.tabIndex]['gdPicrk']=this.priceMin :
            this.selectTab[this.tabIndex]['gdPicrk']=this.priceMax;
       }
        if(this.tabIndex=='stopLoss'){
            this.selectType== 0　? 
            this.selectTab[this.tabIndex]['gdPicrk']=this.priceMax :
            this.selectTab[this.tabIndex]['gdPicrk']=this.priceMin;
       }
         for (let i = 0; i < this.buynumArr.length; i++) {
           if (this.buynumArr[i].is_recommend == "1") {
                this.selectTab[this.tabIndex]['shopNumber'] = Number(this.buynumArr[i].num);
           }
        }
     },
     //更改购买数量
     upShopNumber(i,title) {
   
      if(title=='gdPicrk'){
         var arr = String(this.price_difference).split(".");
      }else{
         var arr = String(this.hand_difference).split(".");
      }
      let type=this.selectType;
      let j = 0;
      if (arr.length == 2) {
        j = arr[1].length;
      }

      this.selectTab[this.tabIndex][title]= Number(Number(this.selectTab[this.tabIndex][title]) + i).toFixed(j);
    },
      upShopzhiyin(i,title,select) {
      let arr = String(this.price_difference).split(".");
      let type=this.selectType;
      let j = 0;
      if (arr.length == 2) {
        j = arr[1].length;
      }
      let content= select == 'zhiyin' ? 
          [this.zhiyinMin - i,this.zhiyinMax - i] :
          [this.zhishunMax - i,this.zhishunMin - i];
      //买入  
      if(type){ 
         this.selectTab[this.tabIndex][title] == '' ? 
         this.selectTab[this.tabIndex][title]=content[0] :''
      }
      //卖出
      else{ 
         this.selectTab[this.tabIndex][title] == '' ? 
         this.selectTab[this.tabIndex][title]=content[1] :''
      }
       this.selectTab[this.tabIndex][title]= Number(Number(this.selectTab[this.tabIndex][title]) + Number(i)).toFixed(
          j)
    },
     keyUpPrice(value,model) {
      let _self = event.currentTarget;
      _self.value=_self.value.replace(/[^0-9/.]/g,'');
      let wei = String(this.newPrice).indexOf('.') > -1 ? String(this.newPrice).split('.')[1].length : 0;

      if (Number(_self.value) > 0 && String(_self.value).indexOf('.') > -1 && String(_self.value).split('.')[1].length > wei) {
        _self.value = Number(String(_self.value).split('.')[0]+'.'+String(_self.value).split('.')[1].slice(0,wei)).toFixed(wei);
        this.selectTab[this.tabIndex][model]=_self.value;
        return;
      }

    },
    // 获取商品详情
     async getSymbolDeta(){
          const $store=this.$store.state
          let res= await _getSymbolDetail($store.traViewSymboId);
            if(res.data.code==200){
                 const  data= res.data.data;
                 //购买手数列表
                 this.buynumArr= data.by_num;
                 const contract = data.goods_contract; 
                 this.goodsId=contract.goods_id;
                 this.hand_difference = Number(contract.hand_difference); // 每次加减的手数
                 this.minhand = Number(contract.min_hand); // 最小手数
                 this.maxhand = Number(contract.max_hand); // 最大手数
                 this.minstop = contract.min_stop;   // 止盈止损最小值 默认
                 this.maxstop = contract.max_stop;   // 止盈止损最大值 默认
                 this.ensure = Number(contract.ensure); // 每手保证金
                 this.mindistance = contract.min_distance;  // 最小挂单距离
                 this.maxdistance = contract.max_distance;   // 最大挂单距离
                 this.typeid = res.data.data.type_id;
                 let newPrice = res.data.data.inAndOut.new_price;
                 this.newPrice =newPrice ;
                 this.price_difference =
                           newPrice.split(".").length == 2
                             ? Math.pow(10, -newPrice.split(".")[1].length)
                             : 1;
             }
             for (let i = 0; i < this.buynumArr.length; i++) {
                 if (this.buynumArr[i].is_recommend == "1") {
                   let item=this.selectTab;
                   item['stopLoss']['shopNumber'] = Number(this.buynumArr[i].num);
                   item['markPrice']['shopNumber'] = Number(this.buynumArr[i].num);
                   item['canCelled']['shopNumber'] = Number(this.buynumArr[i].num);
                 }
              }
             
            
      },
    /**
     * 切换止盈止损
     */
    swichZyZs() {
      let _self = this;
      if (!_self.isLogin) {
        this.alterChoose(2)
        return;
      }
      if(this.tabIndex!='markPrice' && !this.openzyzs){
        this.$refs.toTrade.style='height:380px'
        this.$store.state.announcemState=true
      }else{
        this.$store.state.announcemState=false
        this.$refs.toTrade.style='height:310px'
      }
     this.selectTab.markPrice.stopProfit=''
     this.selectTab.markPrice.stopLoss=''
     this.selectTab.stopLoss.stopLoss=''
     this.selectTab.stopLoss.stopProfit=''
     this.selectTab.canCelled.stopProfit=''
     this.selectTab.canCelled.stopLoss=''
   
     

      _self.openzyzs = !_self.openzyzs;
    }
  },
  computed:{
    
    user() {
      //是否登录
      var user = this.$store.state.user;
      return user;
    },
    dataShow() {
       return this.$js.userAssetNews();
    },
     //打开止盈改变盒子
     openzyzsClass(){
           if(this.tabIndex=='markPrice' && this.openzyzs) return 'downTopZyzs' 
           else return 'downTop'
     },
     //挂单价格范围样式
     putUpClass(){
       if(this.tabIndex=='markPrice') return false
       let num=this.selectTab[this.tabIndex]['gdPicrk']
          if (Number(num) > Number(this.priceMax) || Number(num) < Number(this.priceMin) && num != '') return true
          else return false
     },
     //购买手数范围样式
     shopSizeClass(){
         let num=this.selectTab[this.tabIndex]['shopNumber']
         if (Number(num) > Number(this.maxhand) || Number(num) < Number(this.minhand))    return true 
         else  return false
     },
     //止损价格范围样式
      stopLossClass(){
         let num=this.selectTab[this.tabIndex]['stopLoss']
         if (Number(num) > Number(this.zhishunMax) || Number(num) < Number(this.zhishunMin) && num != '') return true
         else  return false
     },
     //止盈价格范围样式
      priceSizeClass(){
           let num=this.selectTab[this.tabIndex]['stopProfit']
            if( Number(num) >  Number(this.zhiyinMax) || Number(num) < Number(this.zhiyinMin) && num != '') return true
            else return false
      },
      lists(){
            //清空交易栏的数据
            this.tabIndex='markPrice'
            this.selectTab['markPrice']['stopProfit']=''
            this.selectTab['stopLoss']['stopProfit']=''
            this.selectTab['canCelled']['stopProfit']=''
            this.selectTab['markPrice']['stopLoss']=''
            this.selectTab['stopLoss']['stopLoss']=''
            this.selectTab['canCelled']['stopLoss']=''
            let symbol=this.$store.state;
            let tabIndex=[];
            let data=null;
            if(!symbol.token){
               this.openzyzs=false;
               this.isLogin=false;
            }else{
              this.isLogin=true
            }
            for(let i=0;i<symbol.symbolList.length;i++){
                  tabIndex.push(symbol.symbolList[i]['type_name']);
           }
            for(let i=0;i<tabIndex.length;i++){
                  let length=symbol.symbolObj[tabIndex[i]].goods_list.length;
                  let item=symbol.symbolObj[tabIndex[i]].goods_list;
                  for(let j=0;j<length;j++){
                      if( item[j].system_code == symbol.traViewSymboId){
                           data=item[j];
                           break;
                      }
                  }
            }

            //商品一致时过滤多余请求
             if(this.symReqBol!=symbol.traViewSymboId){
             // 获取商品详情
              this.getSymbolDeta()
             //获取当前开盘情况
              this.getGoodsOpen(data.id)
            }
            
            this.symReqBol=symbol.traViewSymboId;

           return data
        },
   zhishunMin() {
      let _self = this;
      let minN =
        _self.minstop.split(".").length == 2
          ? _self.minstop.split(".")[1].length
          : 0; // n次方
      let maxN =
        _self.maxstop.split(".").length == 2
          ? _self.maxstop.split(".")[1].length
          : 0; // n次方
      let newPrice = _self.lists.inAndOut.new_price;
      let minChange =
        String(newPrice).split(".").length == 2
          ? Math.pow(10, -String(newPrice).split(".")[1].length)
          : 1; // 最小变化单位
      let dianwei =
        String(newPrice).split(".").length == 2
          ? String(newPrice).split(".")[1].length
          : 0; // 买入卖出价小数点后有多少位
      switch (_self.tabIndex) {    
        case "markPrice":
          if (_self.selectType == 1) {
            //卖出 止盈价格范围：
            //卖出价格 -（最大点数范围*10的n次方*最小变化单位）~ 卖出价格-（最小点数范围*10的n次方*最小变化单位）
            return Number(
              Number(this.lists.inAndOut.out_price) -
                Number(_self.maxstop) * Math.pow(10, maxN) * minChange
            ).toFixed(dianwei);
          } else if (_self.selectType == 0) {
            // 买入 止盈价格范围：
            // 买入价格 +（最小点数范围*10的n次方*最小变化单位）~ 买入价格 +（最大点数范围*10的n次方*最小变化单位）
            return Number(
              Number(this.lists.inAndOut.in_price) +
                Number(_self.minstop) * Math.pow(10, minN) * minChange
            ).toFixed(dianwei);
          }
          break;
        case "canCelled":
          if (_self.selectType == 1) {
            //卖出 止盈价格范围：
            //卖出价格 -（最大点数范围*10的n次方*最小变化单位）~ 卖出价格-（最小点数范围*10的n次方*最小变化单位）
            return Number(
              Number(this.selectTab[this.tabIndex]['gdPicrk']) -
                Number(_self.maxstop) * Math.pow(10, maxN) * minChange  - Number(this.lists.difference)
            ).toFixed(dianwei);
          } else if (_self.selectType == 0) {
            // 买入 止盈价格范围：
            // 买入价格 +（最小点数范围*10的n次方*最小变化单位）~ 买入价格 +（最大点数范围*10的n次方*最小变化单位）
            return Number(
              Number(this.selectTab[this.tabIndex]['gdPicrk']) +
                Number(_self.minstop) * Math.pow(10, minN) * minChange  + Number(this.lists.difference)
            ).toFixed(dianwei);
          }
          break;
        case "stopLoss":
          if (_self.selectType == 1) {
            //卖出 止盈价格范围：
            //卖出价格 -（最大点数范围*10的n次方*最小变化单位）~ 卖出价格-（最小点数范围*10的n次方*最小变化单位）
            return Number(
              Number(this.selectTab[this.tabIndex]['gdPicrk']) -
                Number(_self.maxstop) * Math.pow(10, maxN) * minChange - Number(this.lists.difference)
            ).toFixed(dianwei);
          } else if (_self.selectType == 0) {
            // 买入 止盈价格范围：
            // 买入价格 +（最小点数范围*10的n次方*最小变化单位）~ 买入价格 +（最大点数范围*10的n次方*最小变化单位）
            return Number(
              Number(this.selectTab[this.tabIndex]['gdPicrk']) +
                Number(_self.minstop) * Math.pow(10, minN) * minChange  + Number(this.lists.difference)
            ).toFixed(dianwei);
          }

          break;
      }
    },
   priceMin() {
      let _self = this;
      let minN =
        _self.mindistance.split(".").length == 2
          ? _self.mindistance.split(".")[1].length
          : 0; // n次方
      let maxN =
        _self.maxdistance.split(".").length == 2
          ? _self.maxdistance.split(".")[1].length
          : 0; // n次方
      let newPrice = _self.lists.inAndOut.new_price;
      let minChange =
        String(newPrice).split(".").length == 2
          ? Math.pow(10, -String(newPrice).split(".")[1].length)
          : 1; // 最小变化单位
      let dianwei =
        String(newPrice).split(".").length == 2
          ? String(newPrice).split(".")[1].length
          : 0; // 买入卖出价小数点后有多少位
      if (_self.tabIndex == "canCelled") {  
        if (_self.selectType == 0) {
          //卖出限价：卖出价格+（最小挂距离*10的n次方*最小变化单位）~卖出价格+（最大挂距离*10的n次方*最小变化单位）
          let pricemin = Number(
            Number(this.lists.inAndOut.out_price) +
              Number(_self.mindistance) * Math.pow(10, minN) * minChange 
          ).toFixed(dianwei);
          return pricemin;
        } else if (_self.selectType == 1) {
          //买入限价：买入价格-（最大挂距离*10的n次方*最小变化单位）~买入价格 -（最小挂距离*10的n次方*最小变化单位）
          return Number(
            Number(this.lists.inAndOut.in_price) -
              Number(_self.maxdistance) * Math.pow(10, maxN) * minChange 
          ).toFixed(dianwei);
        }
      } else if (_self.tabIndex == "stopLoss") {  
        if (_self.selectType == 0) {
          //卖出停损：卖出价格 -（最大挂距离*10的n次方*最小变化单位）~卖出价格 - （最小挂距离*10的n次方*最小变化单位）
          return Number(
            Number(this.lists.inAndOut.out_price) -
              Number(_self.maxdistance) * Math.pow(10, maxN) * minChange
          ).toFixed(dianwei);
        } else if (_self.selectType == 1) {
          //买入停损：买入价格+（最小挂距离*10的n次方*最小变化单位）~买入价格+（最大挂距离*10的n次方*最小变化单位）
          let pricemin = Number(
            Number(this.lists.inAndOut.in_price) +
              Number(_self.mindistance) * Math.pow(10, minN) * minChange
          ).toFixed(dianwei);
          return pricemin;
        }
      }
      
    },
   priceMax() {
      let _self = this;
      let minN =
        _self.mindistance.split(".").length == 2
          ? _self.mindistance.split(".")[1].length
          : 0; // n次方
      let maxN =
        _self.maxdistance.split(".").length == 2
          ? _self.maxdistance.split(".")[1].length
          : 0; // n次方
      let newPrice = _self.lists.inAndOut.new_price;
      let minChange =
        String(newPrice).split(".").length == 2
          ? Math.pow(10, -String(newPrice).split(".")[1].length)
          : 1; // 最小变化单位
      let dianwei =
        String(newPrice).split(".").length == 2
          ? String(newPrice).split(".")[1].length
          : 0; // 买入卖出价小数点后有多少位
      if (_self.tabIndex == "canCelled") { 
        if (_self.selectType == 0) {
          //卖出限价：卖出价格+（最小挂距离*10的n次方*最小变化单位）~卖出价格+（最大挂距离*10的n次方*最小变化单位）
      
          return Number(
            Number(this.lists.inAndOut.out_price) +
              Number(_self.maxdistance) * Math.pow(10, maxN) * minChange 
          ).toFixed(dianwei);
        } else if (_self.selectType == 1) {
          //买入限价：买入价格-（最大挂距离*10的n次方*最小变化单位）~买入价格 -（最小挂距离*10的n次方*最小变化单位）
          let pricemax = Number(
            Number(this.lists.inAndOut.in_price) -
              Number(_self.mindistance) * Math.pow(10, minN) * minChange 
          ).toFixed(dianwei);
          return pricemax;
        }
      } else if (_self.tabIndex == "stopLoss") {
        if (_self.selectType == 0) {
          //卖出停损：卖出价格 -（最大挂距离*10的n次方*最小变化单位）~卖出价格 - （最小挂距离*10的n次方*最小变化单位）
          let pircemax = Number(
            Number(this.lists.inAndOut.out_price) -
              Number(_self.mindistance) * Math.pow(10, minN) * minChange
          ).toFixed(dianwei);
          return pircemax;
        } else if (_self.selectType == 1) {
          //买入停损：买入价格+（最小挂距离*10的n次方*最小变化单位）~买入价格+（最大挂距离*10的n次方*最小变化单位）
          return Number(
            Number(this.lists.inAndOut.in_price) +
              Number(_self.maxdistance) * Math.pow(10, maxN) * minChange
          ).toFixed(dianwei);
        }
      }
    },
   zhiyinMin() {
      let _self = this;
      let minN =
        _self.minstop.split(".").length == 2
          ? _self.minstop.split(".")[1].length
          : 0; // n次方
      let maxN =
        _self.maxstop.split(".").length == 2
          ? _self.maxstop.split(".")[1].length
          : 0; // n次方
      let newPrice = _self.lists.inAndOut.new_price;
      let minChange =
        String(newPrice).split(".").length == 2
          ? Math.pow(10, -String(newPrice).split(".")[1].length)
          : 1; // 最小变化单位
      let dianwei =
        String(newPrice).split(".").length == 2
          ? String(newPrice).split(".")[1].length
          : 0; // 买入卖出价小数点后有多少位
      switch (_self.tabIndex) {
        case "markPrice":
          if (_self.selectType == 1) {
            //卖出 止损价格范围：
            //卖出价格 +（最小点数范围*10的n次方*最小变化单位 ） ~  卖出价格 +（最大点数范围*10的n次方*最小变化单位）
            return Number(
              Number(this.lists.inAndOut.out_price) +
                Number(_self.minstop) * Math.pow(10, minN) * minChange
            ).toFixed(dianwei);
          } else if (_self.selectType == 0) {
            // 买入 止损价格范围：
            // 买入价格 -（最大点数范围*10的n次方*最小变化单位 ） ~  买入价格 -（最小点数范围*10的n次方*最小变化单位）
            return Number(
              Number(this.lists.inAndOut.in_price) -
                Number(_self.maxstop) * Math.pow(10, maxN) * minChange
            ).toFixed(dianwei);
          }
          break;
        case "canCelled":
          if (_self.selectType == 1) {
            //卖出 止损价格范围：
            //卖出价格 +（最小点数范围*10的n次方*最小变化单位 ） ~  卖出价格 +（最大点数范围*10的n次方*最小变化单位）
            return Number(
              Number(this.selectTab[this.tabIndex]['gdPicrk']) +
                Number(_self.minstop) * Math.pow(10, minN) * minChange - Number(this.lists.difference)
            ).toFixed(dianwei);
          } else if (_self.selectType == 0) {
            // 买入 止损价格范围：
            // 买入价格 -（最大点数范围*10的n次方*最小变化单位 ） ~  买入价格 -（最小点数范围*10的n次方*最小变化单位）
            return Number(
              Number(this.selectTab[this.tabIndex]['gdPicrk']) -
                Number(_self.maxstop) * Math.pow(10, maxN) * minChange + Number(this.lists.difference)
            ).toFixed(dianwei);
          }

          break;
        case "stopLoss":
          if (_self.selectType == 1) {
            //卖出 止损价格范围：
            //卖出价格 +（最小点数范围*10的n次方*最小变化单位 ） ~  卖出价格 +（最大点数范围*10的n次方*最小变化单位）
            return Number(
              Number(this.selectTab[this.tabIndex]['gdPicrk']) +
                Number(_self.minstop) * Math.pow(10, minN) * minChange - Number(this.lists.difference)
            ).toFixed(dianwei);
          } else if (_self.selectType == 0) {
            // 买入 止损价格范围：
            // 买入价格 -（最大点数范围*10的n次方*最小变化单位 ） ~  买入价格 -（最小点数范围*10的n次方*最小变化单位）
            return Number(
              Number(this.selectTab[this.tabIndex]['gdPicrk']) -
                Number(_self.maxstop) * Math.pow(10, maxN) * minChange + Number(this.lists.difference)
            ).toFixed(dianwei);
          }

          break;
      }
    },
   zhiyinMax() {
      let _self = this;
      let minN =
        _self.minstop.split(".").length == 2
          ? _self.minstop.split(".")[1].length
          : 0; // n次方
      let maxN =
        _self.maxstop.split(".").length == 2
          ? _self.maxstop.split(".")[1].length
          : 0; // n次方
      let newPrice = _self.lists.inAndOut.new_price;
      let minChange =
        String(newPrice).split(".").length == 2
          ? Math.pow(10, -String(newPrice).split(".")[1].length)
          : 1; // 最小变化单位
      let dianwei =
        String(newPrice).split(".").length == 2
          ? String(newPrice).split(".")[1].length
          : 0; // 买入卖出价小数点后有多少位
      switch (_self.tabIndex) {
        case "markPrice":
          if (_self.selectType == 1) {
            //卖出 止损价格范围：
            //卖出价格 +（最小点数范围*10的n次方*最小变化单位 ） ~  卖出价格 +（最大点数范围*10的n次方*最小变化单位）
            return Number(
              Number(this.lists.inAndOut.out_price) +
                Number(_self.maxstop) * Math.pow(10, maxN) * minChange 
            ).toFixed(dianwei);
          } else if (_self.selectType == 0) {
            // 买入 止损价格范围：
            // 买入价格 -（最大点数范围*10的n次方*最小变化单位 ） ~  买入价格 -（最小点数范围*10的n次方*最小变化单位）
            return Number(
              Number(this.lists.inAndOut.in_price) -
               Number(_self.minstop) * Math.pow(10, minN) * minChange
            ).toFixed(dianwei);
          }
          break;
        case "canCelled":
          if (_self.selectType == 1) {
            //卖出 止损价格范围：
            //卖出价格 +（最小点数范围*10的n次方*最小变化单位 ） ~  卖出价格 +（最大点数范围*10的n次方*最小变化单位）
            return Number(
              Number(this.selectTab[this.tabIndex]['gdPicrk']) +
                Number(_self.maxstop) * Math.pow(10, maxN) * minChange - Number(this.lists.difference)
          
            ).toFixed(dianwei);
          } else if (_self.selectType == 0) {
            // 买入 止损价格范围：
            // 买入价格 -（最大点数范围*10的n次方*最小变化单位 ） ~  买入价格 -（最小点数范围*10的n次方*最小变化单位）
            return Number(
              Number(this.selectTab[this.tabIndex]['gdPicrk']) -
                 Number(_self.minstop) * Math.pow(10, minN) * minChange + Number(this.lists.difference)
            ).toFixed(dianwei);
          }

          break;
        case "stopLoss":
          if (_self.selectType == 1) {
            //卖出 止损价格范围：
            //卖出价格 +（最小点数范围*10的n次方*最小变化单位 ） ~  卖出价格 +（最大点数范围*10的n次方*最小变化单位）
            return Number(
              Number(this.selectTab[this.tabIndex]['gdPicrk']) +
                Number(_self.maxstop) * Math.pow(10, maxN) * minChange - Number(this.lists.difference)
            ).toFixed(dianwei);
          } else if (_self.selectType == 0) {
            // 买入 止损价格范围：
            // 买入价格 -（最大点数范围*10的n次方*最小变化单位 ） ~  买入价格 -（最小点数范围*10的n次方*最小变化单位）
            return Number(
              Number(this.selectTab[this.tabIndex]['gdPicrk']) -
               Number(_self.minstop) * Math.pow(10, minN) * minChange + Number(this.lists.difference)
            ).toFixed(dianwei);
          }

          break;
      }
    },
   zhishunMax() {
      let _self = this;
      let minN =
        _self.minstop.split(".").length == 2
          ? _self.minstop.split(".")[1].length
          : 0; // n次方
      let maxN =
        _self.maxstop.split(".").length == 2
          ? _self.maxstop.split(".")[1].length
          : 0; // n次方

      let newPrice = _self.lists.inAndOut.new_price;
        

      let minChange =
        String(newPrice).split(".").length == 2 
          ? Math.pow(10, -String(newPrice).split(".")[1].length)
          : 1; // 最小变化单位
           
      let dianwei =
        String(newPrice).split(".").length == 2
          ? String(newPrice).split(".")[1].length
          : 0; // 买入卖出价小数点后有多少位
      switch (_self.tabIndex) { 
        case "markPrice":
          if (_self.selectType == 1) {
            //卖出 止盈价格范围：in_price out_price
            //卖出价格 -（最大点数范围*10的n次方*最小变化单位）~ 卖出价格-（最小点数范围*10的n次方*最小变化单位）
            return Number(
              Number(this.lists.inAndOut.out_price) -
                Number(_self.minstop) * Math.pow(10, minN) * minChange 
            ).toFixed(dianwei);
          } else if (_self.selectType == 0) {
            // 买入 止盈价格范围：
            // 买入价格 +（最小点数范围*10的n次方*最小变化单位）~ 买入价格 +（最大点数范围*10的n次方*最小变化单位）
            return Number(
              Number(this.lists.inAndOut.in_price) +
                Number(_self.maxstop) * Math.pow(10, maxN) * minChange
            ).toFixed(dianwei);
          }
          break;
        case "canCelled":
          if (_self.selectType == 1) {
            //卖出 止盈价格范围：
            //卖出价格 -（最大点数范围*10的n次方*最小变化单位）~ 卖出价格-（最小点数范围*10的n次方*最小变化单位）
            return Number(
              Number(this.selectTab[this.tabIndex]['gdPicrk']) -
                Number(_self.minstop) * Math.pow(10, minN) * minChange  - Number(this.lists.difference)
            ).toFixed(dianwei);
          } else if (_self.selectType == 0) {
            // 买入 止盈价格范围：
            // 买入价格 +（最小点数范围*10的n次方*最小变化单位）~ 买入价格 +（最大点数范围*10的n次方*最小变化单位）
            return Number( 
              Number(this.selectTab[this.tabIndex]['gdPicrk']) +
                Number(_self.maxstop) * Math.pow(10, maxN) * minChange  + Number(this.lists.difference)
            ).toFixed(dianwei);
          }

          break;
        case "stopLoss":
          if (_self.selectType == 1) {
            //卖出 止盈价格范围：
            //卖出价格 -（最大点数范围*10的n次方*最小变化单位）~ 卖出价格-（最小点数范围*10的n次方*最小变化单位）
            return Number(
              Number(this.selectTab[this.tabIndex]['gdPicrk']) -
                Number(_self.minstop) * Math.pow(10, minN) * minChange  - Number(this.lists.difference)
            ).toFixed(dianwei);
          } else if (_self.selectType == 0) {
            // 买入 止盈价格范围：
            // 买入价格 +（最小点数范围*10的n次方*最小变化单位）~ 买入价格 +（最大点数范围*10的n次方*最小变化单位）
            return Number(
              Number(this.selectTab[this.tabIndex]['gdPicrk']) +
                Number(_self.maxstop) * Math.pow(10, maxN) * minChange  + Number(this.lists.difference)
            ).toFixed(dianwei);
          }

          break;
      }
    },
  },
  watch:{
    tabIndex(){
      
       if(this.tabIndex=='canCelled'  &&  this.openzyzs){
        this.$refs.toTrade.style='height:380px'
        this.$store.state.announcemState=true;
      }
      if(this.tabIndex=='stopLoss' &&  this.openzyzs){
           this.$refs.toTrade.style='height:380px'
           this.$store.state.announcemState=true;
      }
      if(this.tabIndex=='markPrice' &&  this.openzyzs){
        this.$store.state.announcemState=false
        this.$refs.toTrade.style='height:310px'

      }
       this.second();
    },
    selectType(){
       this.second();
    },
  
 
  }
 
}
</script>

